from django.contrib import admin

from shopper import ShopperConfig
from . import CommodityConfig
# Register your models here.
from .models import *

# admin.site.register(Types)
# admin.site.register(CommodityInfos)
# 修改title和header
admin.site.site_title = "母婴后台系统"  # 站点标题
admin.site.site_header = "母婴电商后台管理系统"  # 站点头部标题
admin.site.index_title = "母婴平台管理"  # 首页标题

# 注册Types模型到admin管理，并定义了在admin中展示的配置

@admin.register(Types)
class TypeAdmin(admin.ModelAdmin):
    list_display = [x for x in list(Types._meta._forward_fields_map.keys())]
    search_fields = ['firsts','seconds']
    list_filter = ['firsts']



@admin.register(CommodityInfos)
class CommodityInfosAdmin(admin.ModelAdmin):
    #list_display = [x for x in list(CommodityInfos._meta._forward_fields_map.keys())]
    # 按照name字段进行搜索
    #search_fields = ['name']
    # 设置按照哪个日期段进行层级的导航
    #date_hierarchy = 'create'

    # 重新定义函数formfield_for_dbfield，用来自定义模型字段在表但中的显示
    #def formfield_for_dbfield(self, db_field, **kwargs):
    #    if db_field.name == 'type':
    #        db_field.choices = [(x['seconds'], x['seconds']) for x in Types.objects.values('seconds')]
    #    # 调用父类的方法，返回处理后的字段表单配置
    #    return super().formfield_for_dbfield(db_field, **kwargs)

    fieldsets = [
        # 第一组
        ('商品信息', {
            # 显示的字段
            'fields': ['name', 'sezes', 'types', 'price', 'discount']
        }),
        # 第二组
        ('收藏数量', {
            # collapse,让这个分组默认是折叠的 可展开
            'classes': ['collapse'],
            'fields': ['likes'],
        }),
    ]


    # 将模型中的types字段下拉选择框改成水平的单选按钮
    # admin.VERTICAL垂直
    #radio_fields = {'types': admin.HORIZONTAL}
    # 数据排序，设置后台数据列表页的默认排序，按照id字段进行升序排序
    ordering = ['id']
    # 支持哪些字段根据点击表头进行排序
    sortable_by = ('price', 'discount')
    # 定义在数据列表显示的模型字段
    list_display = ['id', 'name', 'sezes', 'types', 'price', 'discount']
    # 在数据列表的右侧添加筛选栏，按照types字段进行筛选
    list_filter = ['types']
    # 设置分页
    list_per_page = 100
    # 设置最大显示数量
    list_max_show_all = 200
    # 允许在数据列表页面直接编辑name字段的值，不需要进入修改页面
    list_editable = ['name']
    # 在列表页面添加搜索框，支持按照name和types字段的值进行搜索数据
    search_fields = ['name', 'types']
    # 启用另存为按钮
    save_as = True
    # 下拉框位置，False表示不显示顶部
    actions_on_top = False
    actions_on_bottom = True
